//769 Max Chunks To Make Sorted
/*
给定一个含有 0 到 n 整数的数组，每个整数只出现一次，求这个数组最多可以分割成多少个
子数组，使得对每个子数组进行增序排序后，原数组也是增序的

输入输出样例
	输入一个一维整数数组，输出一个整数，表示最多的分割数

Input: [1,0,2,3,4]
Output: 4
在这个样例中，最多分割是 [1, 0], [2], [3], [4]
*/
int maxChunksToSorted(vector<int> &arr)
{
	int chunks = 0, cur_max = 0;
	for (int i = 0; i < arr.size(); ++i)
	{
		cur_max = max(cur_max, arr[i]);
		if (cur_max == i)
		{
			++chunks;
		}
	}
	return chunks;
}
